package q299_getHint;

public class Solution {
    /*
    首先明确 满足位置和数字都对应的bull 一定可以属于 数字对应的cow之中
    所以使用两个Map记录每个字符串中0 - 9每个数字出现的次数 并且同时计算bull的数量
    cow 则 是Math.min(sMap[i], gMap[i])的和
    最后拼接即可
     */
    public String getHint(String secret, String guess) {
        int[] sMap = new int[10], gMap = new int[10];
        int cow = 0, bull = 0;
        for (int i = 0; i < secret.length(); i++) {
            sMap[secret.charAt(i) - '0']++;
            gMap[guess.charAt(i) - '0']++;
            if (secret.charAt(i) == guess.charAt(i)) ++bull;
        }

        for (int i = 0; i < 10; i++) cow += Math.min(sMap[i], gMap[i]);

        return bull + "A" + (cow - bull) + "B";
    }
}
